package com.blog.service;

import com.blog.dto.PageDto;
import com.blog.entity.Article;
import com.blog.common.result.Result;

import java.util.List;

public interface ArticleService {

    /**
     * 查找文章列表
     * @param article 文章查询条件
     * @return 文章列表结果
     */
    Result<List<Article>> findArticles(Article article);

    /**
     * 根据ID获取文章
     * @return 所有文章
     */
    Result<List<Article>> listAll();


    /**
     * 根据ID获取文章
     * @param id 文章ID
     * @return 文章详情结果
     */
    Result<Article> getArticleById(Integer id);



    /**
     * 根据标签获取文章
     * @param tagId 标签ID
     * @return 文章列表结果
     */
    Result<List<Article>> findArticlesByTag(Integer tagId);

    /**
     * 根据分类获取文章
     * @param categoryId 分类ID
     * @return 文章列表结果
     */
    Result<List<Article>> findArticlesByCategory(Integer categoryId);

    /**
     * 发布文章
     * @param
     * @return 发布结果
     */
    Result saveArticle(String title,
                       String content,
                       Integer tag,
                       Integer category,
                        String account);

    /**
     * 更新文章
     * @param article 文章内容
     * @return 更新结果
     */
    Result updateArticle(Article article);

    /**
     * 删除文章
     * @param id 文章ID
     * @return 删除结果
     */
    Result deleteArticleById(Integer id);

}
